package com.effectiv.gooruda.rest.api.controller;

import org.springframework.social.facebook.api.Facebook;
import org.springframework.social.facebook.api.FacebookProfile;
import org.springframework.social.facebook.api.FamilyMember;
import org.springframework.social.facebook.api.PagedList;
import org.springframework.social.facebook.api.PagingParameters;
import org.springframework.social.facebook.api.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


@Controller
@RequestMapping("/api/facebook/friend")
public class FacebookFriendOperations {

	@RequestMapping(value = "/api/facebook/addtofriendlist/{friendListId}/{friendId}", method = RequestMethod.POST)
	public void addToFriendList(@PathVariable("friendListId") String friendListId,@PathVariable("friendId")  String friendId, Facebook facebook) {
		facebook.friendOperations().addToFriendList(friendListId, friendId);
	}

	@RequestMapping(value = "/api/facebook/createfriendlist/{name}", method = RequestMethod.POST)
	public String createFriendList(@PathVariable("name") String name, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/createfriendlist/{userId}/{name}", method = RequestMethod.POST)
	public String createFriendList(@PathVariable("userId") String userId,@PathVariable("name")  String name, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/deletefriendlist/{friendListId}", method = RequestMethod.DELETE)
	public void deletefriendlist(@PathVariable("friendListId") String friendListId, Facebook facebook) {
		

	}

	@RequestMapping(value = "/api/facebook/getfamily", method = RequestMethod.GET)
	public PagedList<FamilyMember> getFamily(Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getfamily/{userId}", method = RequestMethod.GET)
	public PagedList<FamilyMember> getFamily(@PathVariable("userId") String userId, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getfriendids", method = RequestMethod.GET)
	public PagedList<String> getFriendIds(Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getfriendids/{userId}", method = RequestMethod.GET)
	public PagedList<String> getFriendIds(@PathVariable("userId") String userId , Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getfriendList/{friendListId}", method = RequestMethod.GET)
	public Reference getFriendList(@PathVariable("friendListId") String friendListId , Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getfriendlistmembers/{friendListId}", method = RequestMethod.GET)
	public PagedList<Reference> getFriendListMembers(@PathVariable("friendListId") String friendListId , Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/gefFriendlists", method = RequestMethod.GET)
	public PagedList<Reference> getFriendLists(Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getfriendlists/{userId}", method = RequestMethod.GET)
	public PagedList<Reference> getFriendLists(@PathVariable("userId") String userId , Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getfriendprofiles", method = RequestMethod.GET)
	public PagedList<FacebookProfile> getFriendProfiles(PagingParameters pagedListParameters, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	
	@RequestMapping(value = "/api/facebook/getfriendprofiles/{userId}", method = RequestMethod.GET)	
	public PagedList<FacebookProfile> getFriendProfiles(@PathVariable("userId") String userId,
			PagingParameters pagedListParameters, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	
	@RequestMapping(value = "/api/facebook/getfriends", method = RequestMethod.GET)	
	public PagedList<Reference> getFriends(Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getfriends/{userId}", method = RequestMethod.GET)	
	public PagedList<Reference> getFriends(@PathVariable("userId") String userId, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getmutualfriends/{userId}", method = RequestMethod.GET)	
	public PagedList<Reference> getMutualFriends(@PathVariable("userId") String userId, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getsubscribedto", method = RequestMethod.GET)	
	public PagedList<Reference> getSubscribedTo(Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getsubscribedto/{userId}", method = RequestMethod.GET)	
	public PagedList<Reference> getSubscribedTo(@PathVariable("userId") String userId, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getsubscribers", method = RequestMethod.GET)	
	public PagedList<Reference> getSubscribers(Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/getsubscribers/{userId}", method = RequestMethod.GET)	
	public PagedList<Reference> getSubscribers(@PathVariable("userId") String userId, Facebook facebook) {
		// TODO Auto-generated method stub
		return null;
	}

	@RequestMapping(value = "/api/facebook/removefromfriendlist/{userId}", method = RequestMethod.DELETE)	
	public void removeFromFriendList(@PathVariable("friendListId") String friendListId, @PathVariable("friendId") String friendId, Facebook facebook) {
		// TODO Auto-generated method stub

	}

}
